Короткая справка по программе
Рабочее название: EasySaver
Назначение программы: сохранять и восстанавливать настройки приложений и системы в соответствии с конфигурационными файлами
Описание программы
Программа представляет собой некую оболочку, которая наполняется конфигурационными файлами (конфигами). Каждый конфиг — это xml-файл определённого формата. Подробно о структуре конфига см. в файле config_template.xml
Все конфиги лежат рядом с исполняемым файлом (в папке Configs). В этой папке можно (и нужно!) создать любое количество вложенных папок первого уровня (т.е. Configs\Folder1, Configs\Folder2, …), в которых, в свою очередь, лежат конфиги (xml-ки). Каждая подпапка в папке Configs группирует сходные по смыслу конфиги. Например, Configs\Programs – конфиги с настройками программ, Configs\System – с настройками системы и т.п.
Программа может работать в 2-х режимах: обычном и портативном. В первом случае настройки программы сохраняются в реестр (HKEY_CURRENT_USER\Software\EasySaver), а бэкапы – в соответствии с настройками (см. ниже). По умолчанию это %AppData%\EasySaver\Backup.
В портативном режиме в реестр ничего не пишется, рядом с исполняемым файлом появляется файлик portable.ini с настройками. Бэкапы сохраняются в папку Backup рядом с исполняемым файлом.
Выглядит программа так:

В области 1 отображается древовидная структура конфигов, прочитанных из папки Configs. Каждая группа — это подпапка Configs, каждый лист дерева — конфиг.
Внимание: в дереве отображаются только те конфиги, которые обслуживают реально установленные в системе программы. Скажем, если у вас лежит конфиг для OpenOffice или GIMP, а этих программ у вас нету (или они не той версии, на которую рассчитан конфиг), то отображаться в дереве они не будут.
Названия программ, для которых не найдено бэкапов, отображаются серыйм цветом (на скриншоте – 7-Zip).
Область 2 – журнал работы программы.
В области 3 отображается информация о конфиге (из тега <header> конфигурационного файла).
Область 4 служит для отображения всего того, что конфиг умеет сохранять/восстанавливать. На данном этапе эта область носит чисто информационный характер, забэкапить выбранные части конфига нельзя (бэкапится всё).
Кнопка 5 бэкапит настройки для всех отмеченных программ.
Кнопка 6 восстанавливает настройки для всех отмеченных программ (при условии, конечно, что эти настройки были ранее забэкаплены).
Кнопка 7 служит для пересканирования папки Configs. Полезно, если во время работы программы вы добавили/удалили конфиги или установили/деинсталлировали программы.
Кнопка 8 вызывает диалог настроек:

На данном этапе функциональны только настройки из группы Режим работы.
План развития
Краткосрочный:
Определиться с интерфейсом программы (что удалить/добавить/переделать)
Сделать логирование
Наполнить лог более детальной информацией
Детектирование того, что программа, для которой восстанавливается бэкап, запущена, и «прибивание» этой программы (для избежания конфликтов при восстановлении)
Сделать диалог с настройками
Пофиксить все баги
Долгосрочный
Инсталлятор
Редактор конфигов
Поддержать ключи командной строки (-backup, -restore и в таком духе)
© Владимир Жданов aka Su4nost_